package com.infomanage.util;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.PageContext;

import com.infomanage.exception.FileUploadException;
import com.infomanage.util.smartupload.SmartUpload;

public class FileUpload {
	
	private String filter = "";
	public FileUpload(String filter){
		this.filter = filter;
	}

	public SmartUpload upload(HttpServletRequest request, PageContext pageContext) throws ServletException, FileUploadException{
		String savePath =  request.getRealPath(Consts.FILE_UPLOAD_SAVE_DIR);
	    //新建一个SmartUpload对象    
	     SmartUpload su = new SmartUpload();    
	   
	    //上传初始化    
	     su.initialize(pageContext);    
	   
	    // 设定上传限制    
	    //1.限制每个上传文件的最大长度。    
	     su.setMaxFileSize(10000000);    
	   
	    //2.限制总上传数据的长度。    
	     su.setTotalMaxFileSize(20000000);    
	   
	    //3.设定允许上传的文件（通过扩展名限制）,仅允许doc,txt文件。    
//	     su.setAllowedFilesList("doc,jpg,gif,bmp,png,xls");    
	     su.setAllowedFilesList(filter);    
	        
	    //4.设定禁止上传的文件（通过扩展名限制）,禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。    
	    try {    
	         su.setDeniedFilesList("exe,bat,jsp,htm,html");    
	   
	        //上传文件    
	         su.upload();    
	        //将上传文件保存到指定目录    
	         su.save(savePath); 

	     } catch (Exception e) { 
	         e.printStackTrace(); 
	         throw new FileUploadException();
	     }
		return su; 
	}
}
